<?php

        const codiOrganitzacio = 'codiOrganitzacio';
        const descripcioOrganitzacio = 'descripcioOrganitzacio';
require_once("Basededatos.php");

class Responsable {

    public $entitat = 'responsable';
    public $nomDadesClau = array('codiResponsable');
    //tipus de dades string, int, double, date
    public $tipoDades = array(
        codiResponsable => 'string',
        organitzacio => 'int',
        contrasenyaMD5 => 'string',
        nom => 'string',
        cognom1 => 'string',
        cognom2 => 'string',
        telefon => 'string',
        correu => 'string',
        idioma => 'string',
        foto => 'string',
        actiuResponsable => 'int',
        potCrear => 'int',
        contrasenyaSHA1 => 'string'
    );
    public $nomDadesTotal = array('codiResponsable', 'organitzacio', 'contrasenyaMD5', 'nom', 'cognom1', 'cognom2', 'telefon', 'correu', 'idioma', 'foto', 'actiuResponsable', 'potCrear', 'contrasenyaSHA1');
    public $nomDadesCreate = array('codiResponsable', 'organitzacio', 'contrasenyaMD5', 'nom', 'cognom1', 'cognom2', 'telefon', 'correu', 'idioma', 'foto', 'actiuResponsable', 'potCrear', 'contrasenyaSHA1');
    public $nomDadesUpdate = array('codiResponsable', 'organitzacio', 'contrasenyaMD5', 'nom', 'cognom1', 'cognom2', 'telefon', 'correu', 'idioma', 'foto', 'actiuResponsable', 'potCrear', 'contrasenyaSHA1');
    public $nomDadesAutentica = array('codiResponsable', 'organitzacio', 'contrasenyaMD5', 'contrasenyaSHA1');
    public $bd;
    public $utiles;
    public $llista = array();

    public function __construct($bd) {
        $this->bd = $bd;
        $this->utiles = $bd->utiles;
    }

    public function getLlista() {
        $resultado = mysql_query('SELECT * FROM ' . $this->entitat. ' ORDER BY cognom1, nom', $this->bd->conexion);
        while ($element = mysql_fetch_assoc($resultado)) {
            $this->llista[] = $element;
        }
    }

    public function createEntitat($valors) {
        for ($i = 0, $size = count($valors); $i < $size; $i++) {
            $valors[$i] = addslashes($valors[$i]);
        }
        $checkValores = $this->utiles->checkValores($this->tipoDades, $this->nomDadesCreate, $valors);
        if (!$checkValores) {
            $_SESSION['missatge'] = "msg-bbdd-030";
            return false;
        } else {
            $into = $this->utiles->comaNoms($this->nomDadesCreate);
            $values = $this->utiles->comaValoresTipo($this->tipoDades, $this->nomDadesCreate, $valors, ",");
            $strQuery = "INSERT INTO " . $this->entitat . " (" . $into . ") VALUES (" . $values . ")";
            $insert = mysql_query($strQuery, $this->bd->conexion);
            if ($insert) {
                $_SESSION['missatge'] = "msg-bbdd-040";
                return true;
            } else {
                $_SESSION['missatge'] = "msg-bbdd-050";
                return false;
            }
        }
    }

    public function updateEntitat($claus, $valors) {
        for ($i = 0, $size = count($valors); $i < $size; $i++) {
            $valors[$i] = addslashes($valors[$i]);
        }
        for ($i = 0, $size = count($claus); $i < $size; $i++) {
            $claus[$i] = addslashes($claus[$i]);
        }
        $checkValores = $this->utiles->checkValores($this->tipoDades, $this->nomDadesUpdate, $valors);
        if (!$checkValores) {
            $_SESSION['missatge'] = "msg-bbdd-030";
            return false;
        } else {
            $values = $this->utiles->comaValoresNomTipo($this->tipoDades, $this->nomDadesUpdate, $valors, ",");
            $claves = $this->utiles->comaValoresNomTipo($this->tipoDades, $this->nomDadesClau, $claus, "AND");
            //"UPDATE tabla1 set nombre='".$NOMBRE."', edad=".$EDAD.", estatura=".$ESTATURA." where clave=".$CLAVE;
            $update = mysql_query("UPDATE " . $this->entitat . " SET " . $values . "WHERE " . $claves, $this->bd->conexion);
            if ($update) {
                $_SESSION['missatge'] = "msg-bbdd-060";
                return true;
            } else {
                $_SESSION['missatge'] = "msg-bbdd-070";
                return false;
            }
        }
    }

    public function deleteEntitat($claus) {
        for ($i = 0, $size = count($claus); $i < $size; $i++) {
            $claus[$i] = addslashes($claus[$i]);
        }
        $claves = $this->utiles->comaValoresNomTipo($this->tipoDades, $this->nomDadesClau, $claus, "AND");

        //DELETE FROM table_name
        //WHERE some_column = some_value
        $delete = mysql_query("DELETE FROM " . $this->entitat . " WHERE " . $claves, $this->bd->conexion);
        if ($delete) {
            $_SESSION['missatge'] = "msg-bbdd-080";
            return true;
        } else {
            $_SESSION['missatge'] = "msg-bbdd-090";
            return false;
        }
    }

    public function comprovaAutenticacio($claus) {
        $_SESSION['potCrear'] = "NO";
        for ($i = 0, $size = count($claus); $i < $size; $i++) {
            $claus[$i] = addslashes($claus[$i]);
        }
        $claves = $this->utiles->comaValoresNomTipo($this->tipoDades, $this->nomDadesAutentica, $claus, "AND");
        $autentica = mysql_query("SELECT * FROM " . $this->entitat . " WHERE " . $claves, $this->bd->conexion);
        $trobat = false;
        while ($element = mysql_fetch_assoc($autentica)) {
            $trobat = true;
            $_SESSION['missatge'] = "msg-bbdd-080";
            $_SESSION["autenticado"] = "SI";
            $_SESSION["usuario"] = $_POST['usuari'];
            if ($element["potCrear"]) {
                $_SESSION['potCrear'] = "SI";
            }

            $this->calculaOrganitzacio();
            $this->llista[] = $element;
        }
        if (!isset($_SESSION['idiomaSelected'])) {
            foreach ($this->llista as $elem) {
                $_SESSION['idiomaSelected'] = $elem['idioma'];
            }
        }

        if (!$trobat) {
            $_SESSION["errorusuario"] = "SI";
            $_SESSION["missatge"] = "msg-auten-010";
            return false;
        }
    }

    public function calculaOrganitzacio() {
        require('./persistent/Organitzacio.php');
        $bd = new Basededatos();
        $bd->conectar();
        $organitzacio = new Organitzacio($bd);
        $datos = array();
        $datos[0] = $_POST['organitzacio'];
        $organitzacio->selectClau($datos);
        $i = 0;
        foreach ($organitzacio->llista as $elem) {
            $_SESSION['organitzaciotop'] = $elem['descripcioOrganitzacio'] . ' | ';
            $_SESSION['sector'] = $elem['sector'];
            $i++;
        }
        //$bd->cerrar();
    }

}

?>
